home *** CD-ROM | disk | FTP | other *** search
/ SGI Developer Toolbox 6.1 / SGI Developer Toolbox 6.1 - Disc 4.iso / src / demos / GL / buttonfly / data.h < prev    next >
Encoding:
C/C++ Source or Header  |  1994-08-02  |  8.8 KB  |  463 lines

  1. /*
  2.  * Copyright 1991, 1992, 1993, 1994, Silicon Graphics, Inc.
  3.  * All Rights Reserved.
  4.  *
  5.  * This is UNPUBLISHED PROPRIETARY SOURCE CODE of Silicon Graphics, Inc.;
  6.  * the contents of this file may not be disclosed to third parties, copied or
  7.  * duplicated in any form, in whole or in part, without the prior written
  8.  * permission of Silicon Graphics, Inc.
  9.  *
  10.  * RESTRICTED RIGHTS LEGEND:
  11.  * Use, duplication or disclosure by the Government is subject to restrictions
  12.  * as set forth in subdivision (c)(1)(ii) of the Rights in Technical Data
  13.  * and Computer Software clause at DFARS 252.227-7013, and/or in similar or
  14.  * successor clauses in the FAR, DOD or NASA FAR Supplement. Unpublished -
  15.  * rights reserved under the Copyright Laws of the United States.
  16.  */
  17. #define DIAG (1.0/1.414214)
  18. #define THICK (1.0/8.0)
  19. #define WIDE (5.0/8.0)
  20. #define HIGH (4.0/8.0)
  21. #define BEVEL (1.0/8.0)
  22. #define SCREEN    (1.25-THICK)
  23.  
  24. Matrix idmat = {
  25.     {1.0, 0.0, 0.0, 0.0,},
  26.     {0.0, 1.0, 0.0, 0.0,},
  27.     {0.0, 0.0, 1.0, 0.0,},
  28.     {0.0, 0.0, 0.0, 1.0,},
  29. };
  30.  
  31. float edge_colors[8][3] = {
  32.  
  33.     {240, 240, 240},
  34.     {200, 200, 200},
  35.     {180, 180, 180},
  36.     {150, 150, 150},
  37.     {120, 120, 120},
  38.     {80, 80, 80},
  39.     {70, 70, 70},
  40.     {50, 50, 50},
  41. };
  42.  
  43. float edge_normals[8][3] = {
  44.  
  45.     {0.0, 1.0, 0.0},
  46.     {0.0, DIAG, -DIAG},
  47.     {1.0, 0.0, 0.0},
  48.     {DIAG, 0.0, -DIAG},
  49.     {-1.0, 0.0, 0.0},
  50.     {-DIAG, 0.0, -DIAG},
  51.     {0.0, -1.0, 0.0},
  52.     {0.0, -DIAG, -DIAG},
  53.  
  54. };
  55.  
  56. float edge_polys[8][4][3] = {
  57.  
  58.     {    {-WIDE, HIGH, 0.0},
  59.     {-WIDE, HIGH, THICK},
  60.     {WIDE, HIGH, THICK},
  61.     {WIDE, HIGH, 0.0},
  62.     },
  63.  
  64.     {    {-WIDE+BEVEL, HIGH-BEVEL, -THICK},
  65.     {-WIDE, HIGH, 0.0},
  66.     {WIDE, HIGH, 0.0},
  67.     {WIDE-BEVEL, HIGH-BEVEL, -THICK},
  68.     },
  69.  
  70.     {    {WIDE, HIGH, THICK},
  71.     {WIDE, -HIGH, THICK},
  72.     {WIDE, -HIGH, 0.0},
  73.     {WIDE, HIGH, 0.0},
  74.     },
  75.  
  76.     {    {WIDE, -HIGH, 0.0},
  77.     {WIDE-BEVEL, -HIGH+BEVEL, -THICK},
  78.     {WIDE-BEVEL, HIGH-BEVEL, -THICK},
  79.     {WIDE, HIGH, 0.0},
  80.     },
  81.  
  82.     {    {-WIDE, HIGH, 0.0},
  83.     {-WIDE, -HIGH, 0.0},
  84.     {-WIDE, -HIGH, THICK},
  85.     {-WIDE, HIGH, THICK},
  86.     },
  87.  
  88.     {    {-WIDE, HIGH, 0.0},
  89.     {-WIDE+BEVEL, HIGH-BEVEL, -THICK},
  90.     {-WIDE+BEVEL, -HIGH+BEVEL, -THICK},
  91.     {-WIDE, -HIGH, 0.0},
  92.  
  93.     },
  94.  
  95.     {    {WIDE, -HIGH, 0.0},
  96.     {WIDE, -HIGH, THICK},
  97.     {-WIDE, -HIGH, THICK},
  98.     {-WIDE, -HIGH, 0.0}
  99.     },
  100.  
  101.     {    {WIDE-BEVEL, -HIGH+BEVEL, -THICK},
  102.     {WIDE, -HIGH, 0.0},
  103.     {-WIDE, -HIGH, 0.0},
  104.     {-WIDE+BEVEL, -HIGH+BEVEL, -THICK}
  105.     },
  106.  
  107. };
  108.  
  109. float front_polys[1][4][3] = {
  110.  
  111.     {    {-WIDE+BEVEL, HIGH-BEVEL, -THICK},
  112.     {WIDE-BEVEL, HIGH-BEVEL, -THICK},
  113.     {WIDE-BEVEL, -HIGH+BEVEL, -THICK},
  114.     {-WIDE+BEVEL, -HIGH+BEVEL, -THICK},
  115.     }
  116. };
  117.  
  118. float front_normals[1][3] = {
  119.  
  120.     {0.0, 0.0, -1.0}
  121. };
  122.  
  123. float back_polys[1][4][3] = {
  124.  
  125.     {    {-WIDE, -HIGH, THICK},
  126.     {WIDE, -HIGH, THICK},
  127.     {WIDE, HIGH, THICK},
  128.     {-WIDE, HIGH, THICK},
  129.     }
  130. };
  131.  
  132. float back_normals[1][3] = {
  133.  
  134.     {0.0, 0.0, 1.0}
  135. };
  136.  
  137. float mat[] = {
  138.     AMBIENT, 0.5, 0.5,  0.5,
  139.     DIFFUSE, 0.5, 0.5, 0.5,
  140.     SPECULAR, 1.0, 1.0, 1.0,
  141.     SHININESS, 20.0,
  142.     LMNULL
  143. };
  144.  
  145. float tmp_mat[] = {
  146.     AMBIENT, 0.5, 0.5,  0.5,
  147.     DIFFUSE, 0.5, 0.5, 0.5,
  148.     LMNULL
  149. };
  150.  
  151.  
  152. float light_model[] = {
  153.     AMBIENT, 0.1,  0.1, 0.1, 
  154.     LOCALVIEWER, 0.0, 
  155.     LMNULL
  156. };
  157.  
  158. float light1[] = {
  159.     AMBIENT, 0.0, 0.0, 0.0, 
  160.     LCOLOR, 1.0, 1.0, 1.0, 
  161.     POSITION, -1.5, 2.0, 0.4, 0.0,
  162.     LMNULL
  163. };
  164.  
  165. float light2[] = {
  166.     AMBIENT, 0.1, 0.1, 0.1, 
  167.     LCOLOR, 0.0, 0.2, 0.5, 
  168.     POSITION, 1.0, -1.0, 0.0, 0.0,
  169.     LMNULL
  170. };
  171.  
  172.  
  173. /* starting spots for different numbers of buttons.  x, y, z */
  174.  
  175. float spot0[1] = {NULL};
  176.  
  177. float spot1[1*3] = {
  178.     0.0, 0.0, -2.0,
  179. };
  180.  
  181. float spot2[2*3] = {
  182.     1.0, 0.0, -2.5,
  183.     -1.0, 0.0, -2.5,
  184. };
  185.  
  186. float spot3[3*3] = {
  187.     1.5, 0.0, -3.5,
  188.     0.0, 0.0, -3.5,
  189.     -1.5, 0.0, -3.5,
  190. };
  191.  
  192. float spot4[4*3] = {
  193.     1.0, -0.8, -2.5,
  194.     -1.0, -0.8, -2.5,
  195.     1.0, 0.8, -2.5,
  196.     -1.0, 0.8, -2.5,
  197. };
  198.  
  199.  
  200. float spot5[5*3] = {
  201.     0.0, 0.0, -3.5,
  202.     1.5, -1.2, -3.5,
  203.     -1.5, -1.2, -3.5,
  204.     1.5, 1.2, -3.5,
  205.     -1.5, 1.2, -3.5,
  206. };
  207.  
  208. float spot6[6*3] = {
  209.     1.1, -1.2, -3.5,
  210.     -1.1, -1.2, -3.5,
  211.     1.1, 0.0, -3.5,
  212.     -1.1, 0.0, -3.5,
  213.     1.1, 1.2, -3.5,
  214.     -1.1, 1.2, -3.5,
  215. };
  216.  
  217. float spot7[7*3] = {
  218.     0.75, -1.2, -3.5,
  219.     -0.75, -1.2, -3.5,
  220.     1.5, 0.0, -3.5,
  221.     0.0, 0.0, -3.5,
  222.     -1.5, 0.0, -3.5,
  223.     0.75, 1.2, -3.5,
  224.     -0.75, 1.2, -3.5,
  225. };
  226.  
  227. float spot8[8*3] = {
  228.     1.5, -1.2, -3.5,
  229.     0.0, -1.2, -3.5,
  230.     -1.5, -1.2, -3.5,
  231.     0.75, 0.0, -3.5,
  232.     -0.75, 0.0, -3.5,
  233.     1.5, 1.2, -3.5,
  234.     0.0, 1.2, -3.5,
  235.     -1.5, 1.2, -3.5,
  236. };
  237.  
  238. float spot9[9*3] = {
  239.     1.5, -1.2, -3.5,
  240.     0.0, -1.2, -3.5,
  241.     -1.5, -1.2, -3.5,
  242.     1.5, 0.0, -3.5,
  243.     0.0, 0.0, -3.5,
  244.     -1.5, 0.0, -3.5,
  245.     1.5, 1.2, -3.5,
  246.     0.0, 1.2, -3.5,
  247.     -1.5, 1.2, -3.5,
  248. };
  249.  
  250. float spot10[10*3] = {
  251.     1.4, -1.12, -4.5,
  252.     0.0, -1.12, -4.5,
  253.     -1.4, -1.12, -4.5,
  254.  
  255.     2.15, 0.0, -4.5,
  256.     0.7, 0.0, -4.5,
  257.     -0.7, 0.0, -4.5,
  258.     -2.15, 0.0, -4.5,
  259.  
  260.     1.4, 1.12, -4.5,
  261.     0.0, 1.12, -4.5,
  262.     -1.4, 1.12, -4.5,
  263. };
  264.  
  265. float spot11[11*3] = {
  266.     2.15, -1.12, -4.5,
  267.     0.7, -1.12, -4.5,
  268.     -0.7, -1.12, -4.5,
  269.     -2.15, -1.12, -4.5,
  270.  
  271.     1.4, 0.0, -4.5,
  272.     0.0, 0.0, -4.5,
  273.     -1.4, 0.0, -4.5,
  274.  
  275.     2.15, 1.12, -4.5,
  276.     0.7, 1.12, -4.5,
  277.     -0.7, 1.12, -4.5,
  278.     -2.15, 1.12, -4.5,
  279. };
  280.  
  281. float spot12[12*3] = {
  282.     2.15, -1.12, -4.5,
  283.     0.7, -1.12, -4.5,
  284.     -0.7, -1.12, -4.5,
  285.     -2.15, -1.12, -4.5,
  286.  
  287.     2.15, 0.0, -4.5,
  288.     0.7, 0.0, -4.5,
  289.     -0.7, 0.0, -4.5,
  290.     -2.15, 0.0, -4.5,
  291.  
  292.     2.15, 1.12, -4.5,
  293.     0.7, 1.12, -4.5,
  294.     -0.7, 1.12, -4.5,
  295.     -2.15, 1.12, -4.5,
  296. };
  297.  
  298. float spot13[13*3] = {
  299.     0.0, -2.24, -5.6,
  300.  
  301.     2.15, -1.12, -5.6,
  302.     0.7, -1.12, -5.6,
  303.     -0.7, -1.12, -5.6,
  304.     -2.15, -1.12, -5.6,
  305.  
  306.     1.4, 0.0, -5.6,
  307.     0.0, 0.0, -5.6,
  308.     -1.4, 0.0, -5.6,
  309.  
  310.     2.15, 1.12, -5.6,
  311.     0.7, 1.12, -5.6,
  312.     -0.7, 1.12, -5.6,
  313.     -2.15, 1.12, -5.6,
  314.  
  315.     0.0, 2.24, -5.6,
  316. };
  317.  
  318. float spot14[14*3] = {
  319.     1.4, -1.68, -4.5,
  320.     0.0, -1.68, -4.5,
  321.     -1.4, -1.68, -4.5,
  322.  
  323.     2.15, -0.56, -4.5,
  324.     0.7, -0.56, -4.5,
  325.     -0.7, -0.56, -4.5,
  326.     -2.15, -0.56, -4.5,
  327.  
  328.     2.15, 0.56, -4.5,
  329.     0.7, 0.56, -4.5,
  330.     -0.7, 0.56, -4.5,
  331.     -2.15, 0.56, -4.5,
  332.  
  333.     1.4, 1.68, -4.5,
  334.     0.0, 1.68, -4.5,
  335.     -1.4, 1.68, -4.5,
  336. };
  337.  
  338. float spot15[15*3] = {
  339.     2.15, -1.68, -4.5,
  340.     0.7, -1.68, -4.5,
  341.     -0.7, -1.68, -4.5,
  342.     -2.15, -1.68, -4.5,
  343.  
  344.     2.15, -0.56, -4.5,
  345.     0.7, -0.56, -4.5,
  346.     -0.7, -0.56, -4.5,
  347.     -2.15, -0.56, -4.5,
  348.  
  349.     2.15, 0.56, -4.5,
  350.     0.7, 0.56, -4.5,
  351.     -0.7, 0.56, -4.5,
  352.     -2.15, 0.56, -4.5,
  353.  
  354.     1.4, 1.68, -4.5,
  355.     0.0, 1.68, -4.5,
  356.     -1.4, 1.68, -4.5,
  357. };
  358.  
  359. float spot16[16*3] = {
  360.     2.15, -1.68, -4.5,
  361.     0.7, -1.68, -4.5,
  362.     -0.7, -1.68, -4.5,
  363.     -2.15, -1.68, -4.5,
  364.  
  365.     2.15, -0.56, -4.5,
  366.     0.7, -0.56, -4.5,
  367.     -0.7, -0.56, -4.5,
  368.     -2.15, -0.56, -4.5,
  369.  
  370.     2.15, 0.56, -4.5,
  371.     0.7, 0.56, -4.5,
  372.     -0.7, 0.56, -4.5,
  373.     -2.15, 0.56, -4.5,
  374.  
  375.     2.15, 1.68, -4.5,
  376.     0.7, 1.68, -4.5,
  377.     -0.7, 1.68, -4.5,
  378.     -2.15, 1.68, -4.5,
  379. };
  380.  
  381. float spot32[32*3] = {
  382.     2.8, -2.8, -6.8,
  383.     1.4, -2.8, -6.8,
  384.     0.0, -2.8, -6.8,
  385.     -1.4, -2.8, -6.8,
  386.     -2.8, -2.8, -6.8,
  387.  
  388.     2.8, -1.68, -6.8,
  389.     1.4, -1.68, -6.8,
  390.     0.0, -1.68, -6.8,
  391.     -1.4, -1.68, -6.8,
  392.     -2.8, -1.68, -6.8,
  393.  
  394.     3.5, -0.56, -6.8,
  395.     2.1, -0.56, -6.8,
  396.     0.7, -0.56, -6.8,
  397.     -0.7, -0.56, -6.8,
  398.     -2.1, -0.56, -6.8,
  399.     -3.5, -0.56, -6.8,
  400.  
  401.     3.5, 0.56, -6.8,
  402.     2.1, 0.56, -6.8,
  403.     0.7, 0.56, -6.8,
  404.     -0.7, 0.56, -6.8,
  405.     -2.1, 0.56, -6.8,
  406.     -3.5, 0.56, -6.8,
  407.  
  408.     2.8, 1.68, -6.8,
  409.     1.4, 1.68, -6.8,
  410.     0.0, 1.68, -6.8,
  411.     -1.4, 1.68, -6.8,
  412.     -2.8, 1.68, -6.8,
  413.  
  414.     2.8, 2.8, -6.8,
  415.     1.4, 2.8, -6.8,
  416.     0.0, 2.8, -6.8,
  417.     -1.4, 2.8, -6.8,
  418.     -2.8, 2.8, -6.8,    
  419. };
  420.  
  421. float *spots[MAX_SPOTS] = {
  422.  
  423.     spot1, spot2, spot3, spot4, spot5, spot6, spot7, spot8, spot9, spot10,
  424.     spot11, spot12, spot13, spot14, spot15, spot16, spot32, spot32, spot32,
  425.     spot32, spot32, spot32, spot32, spot32, spot32, spot32, spot32, spot32,
  426.     spot32, spot32, spot32, spot32,
  427. };
  428.  
  429.  
  430. /*---------------------------------------------------------------------------*/
  431. /* stuff for eight bitplane systems */
  432.  
  433. #define CM_BACKINDEX        6    /* background color */
  434. #define CM_TEXTINDEX        3    /* text color */
  435. #define CM_BUTTONBACKINDEX  4    /* need two entrys to toggle swapbuffers() */
  436. #define CM_BUTTONINDEX        8    /* highlighted button color ramp */
  437. #define CM_DIFFUSEOFFSET    7    /* offset in color ramp for diffuse entry */
  438. #define    CM_SPECULAROFFSET   7    /* offset in color ramp for specular entry */
  439.  
  440. #define BUTTONINDEX7    (CM_BUTTONINDEX + 6)
  441. #define BUTTONINDEX6    (CM_BUTTONINDEX + 5)
  442. #define BUTTONINDEX5    (CM_BUTTONINDEX + 1)
  443. #define BUTTONINDEX4    (CM_BUTTONINDEX + 2)
  444. #define BUTTONINDEX3    (CM_BUTTONINDEX + 3)
  445. #define BUTTONINDEX2    (CM_BUTTONINDEX + 4)
  446. #define BUTTONINDEX1    (CM_BUTTONINDEX)
  447. #define BUTTONINDEX0    (CM_BUTTONINDEX + 1)
  448.  
  449. #define CM_BUTTONFRONT    (CM_BUTTONINDEX + 3)
  450.  
  451. int cm_buttoncolor[8] = {
  452.     BUTTONINDEX7,
  453.     BUTTONINDEX6,
  454.     BUTTONINDEX5,
  455.     BUTTONINDEX4,
  456.     BUTTONINDEX3,
  457.     BUTTONINDEX2,
  458.     BUTTONINDEX1,
  459.     BUTTONINDEX0
  460. };
  461.  
  462. /*---------------------------------------------------------------------------*/
  463.